#! /usr/bin/env python

# Alunos:   Eliezer de Souza da Silva  RA: 124065
#           Fernanda Brandao Silva     RA: 060727
#           Michel Silva Fornaciali    RA: 071884
# IA368R: Eduardo Valle - Trabalho 2, Programa 1

import os
import sys
import Image
from random import sample

def validacao():
    # Faz a validacao da quantidade e extensoes dos arquivos de entrada.
    if len(sys.argv) != 3: 
        sys.stdout.write("Uso da amostragem: python amostragem.py <caminho> <N>\n")
        sys.stdout.write("     <caminho>: caminho completo para diretorio\n")
        sys.stdout.write("     <N>: numero de pixels a serem amostrados de cada imagem\n")
        sys.exit()


# --- Script principal ---

# Validacao dos dados de entrada.
validacao()

# Acessa o diretorio informado. 
arquivos = os.listdir(sys.argv[1])

# n - numero de amostras
n = int(sys.argv[2]) 

# Para cada imagem PPM do diretorio, amostra N pixels.
for arquivo in arquivos:
    if arquivo[-3:] == "ppm":               
        # Abre a imagem e obtem as dimensoes.
        imagem = Image.open(sys.argv[1]+os.sep+arquivo)
        # Obtem os pixels da imagem.
        pixels = list(imagem.getdata())
        amostras = sample(pixels,n)
        for amostra in amostras:
            sys.stdout.write(str(amostra[0])+" "+str(amostra[1])+" "+str(amostra[2])+"\n")

